<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
  <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />

  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Multi-level algorithm &mdash; SIMULATeQCD 0.7 documentation</title>
      <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
      <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
      <link rel="stylesheet" href="../_static/togglebutton.css" type="text/css" />
      <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
  <!--[if lt IE 9]>
    <script src="../_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
        <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
        <script src="../_static/jquery.js"></script>
        <script src="../_static/underscore.js"></script>
        <script src="../_static/doctools.js"></script>
        <script src="../_static/togglebutton.js"></script>
        <script>var togglebuttonSelector = '.toggle, .admonition.dropdown';</script>
    <script src="../_static/js/theme.js"></script>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="Rational Hybrid Monte Carlo" href="rhmc.html" />
    <link rel="prev" title="Gradient Flow" href="gradientFlow.html" /> 
</head>

<body class="wy-body-for-nav"> 
  <div class="wy-grid-for-nav">
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search"  style="background: #343131" >
            <a href="../index.html" class="icon icon-home"> SIMULATeQCD
          </a>
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>
        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
              <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../01_gettingStarted/gettingStarted.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="../02_contributions/contributions.html">Contributions</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="applications.html">Applications</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="gaugeFixing.html">Gauge Fixing</a></li>
<li class="toctree-l2"><a class="reference internal" href="quenched.html">Generate quenched gauge configurations</a></li>
<li class="toctree-l2"><a class="reference internal" href="gradientFlow.html">Gradient Flow</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Multi-level algorithm</a></li>
<li class="toctree-l2"><a class="reference internal" href="rhmc.html">Rational Hybrid Monte Carlo</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../04_codeBase/codeBase.html">Code base</a></li>
<li class="toctree-l1"><a class="reference internal" href="../05_modules/modules.html">Modules</a></li>
</ul>

        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu"  style="background: #343131" >
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../index.html">SIMULATeQCD</a>
      </nav>

      <div class="wy-nav-content">
        <div class="rst-content">
          <div role="navigation" aria-label="Page navigation">
  <ul class="wy-breadcrumbs">
      <li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
          <li><a href="applications.html">Applications</a> &raquo;</li>
      <li>Multi-level algorithm</li>
      <li class="wy-breadcrumbs-aside">
            <a href="../_sources/03_applications/multiLevel.md.txt" rel="nofollow"> View page source</a>
      </li>
  </ul>
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
             
  <section class="tex2jax_ignore mathjax_ignore" id="multi-level-algorithm">
<h1>Multi-level algorithm<a class="headerlink" href="#multi-level-algorithm" title="Permalink to this headline"></a></h1>
<p>The Multi-level algorithm has been implemented according to Martin Lüscher and Peter Weisz’s idea of sub-lattice updates,
see  <a class="reference external" href="https://doi.org/10.1088/1126-6708/2001/09/010">hep-lat/0108014v1</a> (and also Harvey Meyer’s
paper <a class="reference external" href="https://doi.org/10.1088/1126-6708/2003/01/048">hep-lat/0209145</a>). There are two sub-lattice updates:
HB and OR,  same as the standard ones <a class="reference internal" href="../05_modules/gaugeUpdates.html#gauge-updates-hb-and-or"><span class="std std-doc">Gauge Updates (HB and OR)</span></a>
but performed within a sub lattice. For details see luscherweisz.h and luscherweisz.cpp.</p>
<p>After the sub-lattice updates, the observables will be measured. Currently the calculations of energy-momentum tensor,
polyakovloop and color-electric correlators have been implemented. For details, see <code class="docutils literal notranslate"><span class="pre">subLatMeas.h</span></code> and <code class="docutils literal notranslate"><span class="pre">subLatMeas.cpp</span></code>.</p>
<p>To compile, one can <code class="docutils literal notranslate"><span class="pre">make</span></code> the executable <code class="docutils literal notranslate"><span class="pre">sublatticeUpdates</span></code>. You can then find it under <code class="docutils literal notranslate"><span class="pre">applications/sublatticeUpdates</span></code>.
The example parameter file is found under <code class="docutils literal notranslate"><span class="pre">parameter/sublatticeUpdates.param</span></code> and looks like this:</p>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="c1">#parameter file for sublatticeUpdates</span>
<span class="nv">Lattice</span> <span class="o">=</span> <span class="m">20</span> <span class="m">20</span> <span class="m">20</span> <span class="m">20</span>
<span class="nv">Nodes</span> <span class="o">=</span> <span class="m">1</span> <span class="m">1</span> <span class="m">1</span> <span class="m">1</span>
<span class="nv">beta</span> <span class="o">=</span> <span class="m">6</span>.498
<span class="nv">Gaugefile</span> <span class="o">=</span>../test_conf/l20t20b06498a_nersc.302500
<span class="nv">conf_nr</span> <span class="o">=</span> <span class="m">302500</span>
<span class="nv">format</span> <span class="o">=</span> nersc
<span class="nv">endianness</span> <span class="o">=</span> auto
<span class="nv">sublattice_lt</span> <span class="o">=</span> <span class="m">6</span>
<span class="nv">num_meas</span> <span class="o">=</span> <span class="m">100</span>
<span class="nv">num_update</span> <span class="o">=</span> <span class="m">10</span>
<span class="nv">min_dist</span> <span class="o">=</span> <span class="m">0</span>
<span class="nv">PzMax</span> <span class="o">=</span> <span class="m">0</span>
<span class="nv">VacuumSubtractionHelper</span> <span class="o">=</span> <span class="m">1</span>.72
<span class="nv">out_dir</span> <span class="o">=</span> ./
<span class="nv">EnergyMomentumTensorCorr</span> <span class="o">=</span> <span class="m">0</span>
<span class="nv">ColorElectricCorr</span> <span class="o">=</span> <span class="m">0</span>
</pre></div>
</div>
<p>Calling <code class="docutils literal notranslate"><span class="pre">./sublatticeUpdates</span> <span class="pre">sublatticeUpdates.param</span></code> will output the multi-level improved energy-momentum
tensor correlators in both shear and bulk channel and also the traceless part of the EMT and the trace
anomaly (which can be used to remove the disconnected part of the correlators), polyakovloop and
color-electric correlators, all  saved in plain text.  The corresponding observables calculated without multi-level improvement will also be given.</p>
<p><code class="docutils literal notranslate"><span class="pre">sublattice_lt</span></code> in the above parameter file means the temporal extension of a sub lattice. The
spatial extensions of a sub lattice are the same as the full lattice.  <code class="docutils literal notranslate"><span class="pre">num_update</span></code> means after
how many sweeps(1 sweep = 1<em>HB + 4</em>OR) the observables will be measured. The total number of measuring is set by <code class="docutils literal notranslate"><span class="pre">num_meas</span></code>.</p>
<p><code class="docutils literal notranslate"><span class="pre">min_dist</span></code> means the minimum distance between the right boundary of the left sub-lattice and the left boundary of
the right sub-lattice.  For instance when <code class="docutils literal notranslate"><span class="pre">min_dist</span></code> is set to 0, the smallest time distance of the color-electric
correlator available will be 3. This is because the <code class="docutils literal notranslate"><span class="pre">square</span></code> within a sub lattice can not hit the boundary. For
the similar reason the smallest time distance for the EMT correlator is 4.</p>
<p><code class="docutils literal notranslate"><span class="pre">PzMax</span></code> means the maximum integer value of the finite momentum in z-direction. Used only in the calculation of
energy-momentum correlators. For instance if we set it to 2, then we will have correlators at <code class="docutils literal notranslate"><span class="pre">pz=0,1,2</span></code>. Here
we only consider z-direction because it is easy to implement for shear channel correlators.</p>
<p><code class="docutils literal notranslate"><span class="pre">VacuumSubtractionHelper</span></code> is only bulk channel involved. it is a magic value used to subtract the first a few
useless digits appearing in the trace anomaly at zero momentum, as they do not contribute the bulk correlators
and introduce numerical problem. VacuumSubtractionHelper can be obtained by a test run of this program on any
of the configurations of the same lattice size and beta with 0 sublattice updates. The magic number is given by the trace anomaly in the output file.</p>
<p>Setting <code class="docutils literal notranslate"><span class="pre">EnergyMomentumTensorCorr=0</span></code> will calculate the energy-momentum tensor correlators. At the same time the trace anomaly will be calculated, too.
Setting <code class="docutils literal notranslate"><span class="pre">ColorElectricCorr=0</span></code> will calculate the color-electric correlators. At the same time the polyakov loop will be calculated, too.</p>
</section>


           </div>
          </div>
          <footer>

  <hr/>

  <div role="contentinfo">
    <p>&#169; Copyright 2021, LatticeQCD.</p>
  </div>

  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
    provided by <a href="https://readthedocs.org">Read the Docs</a>.
   

</footer>
        </div>
      </div>
    </section>
  </div>
  <script>
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script> 

</body>
</html>